<?php
class My_Aclplugin extends Zend_Controller_Plugin_Abstract
 {
     protected $_acl;
     public function __construct($acl)
      {
         $this->_acl = $acl;  
      }
     public function preDispatch(Zend_Controller_Request_Abstract $request)
      {
          // Gọi chứng thực
          
          
          $auth = Zend_Auth::getInstance();
          $role = 'admin';
          if( $auth->hasIdentity() ) // Nếu có chứng thực
           { 
               // Lấy thông tin đã ghi vào session
               
               $infoUserData = $auth->getIdentity();
               //var_dump($infoUserData);die;
               Zend_Layout::startMvc()->getView()->infoUserData = $infoUserData;
               // Lấy cấp độ người dùng
               //var_dump($infoUserData); die;
               //$level = $infoUserData->level;
               //$active = $infoUserData->active;
               // Tạo Role
               
               
               //echo $active;die;
               /*
               if($active>0){
                   switch($level)
                    {
                       case 1: $role = "admin";break;
                       case 2: $role = "moderator"; break;
                       case 3: $role = "user";break;
                       default:$role = "user";
                    }
               }else {
                   $role="banned";
               }*/
              
              
              
           }else {
               Zend_Layout::startMvc()->getView()->infoUserData = "";
           }
           
           // Lấy Request
           // Module
           $module = $request->getModuleName();
           
           // Controller
           $controller = $request->getControllerName();
           
           // Action
           $action = $request->getActionName();
           
           
           //Tạo Resource
           $resource = $module.":".$controller;
           //echo $module.'--'.$controller.'--'.$action.'----'.$resource.'----'.$role; die;
           // Chuyển hướng người dùng nếu không được phép truy cập
           if( !$this->_acl->isAllowed($role,$resource,$action) )
           {
                echo 'Khong co quyen truy cap';die;
                $request->setModuleName('default')
                   		->setControllerName('index')
                   		->setActionName('index');
           }
           
      }
 }